perm filename MKIMAG.FAI[XGP,BGB] blob
sn#033585 filedate 1973-05-11 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 SUBR(CRE)------------------------------------------------------
C00005 00003 NSUBR(MKIMAG,FILM)------------------------------------------------
C00007 ENDMK
C⊗;
SUBR(CRE)------------------------------------------------------
BEGIN CRE;(Q1,Q2) - MAKE CRE STRUCTURE - BGB - 6 DEC 1972.
EXTERNAL CMIN,CMAX
;BIT POSITIONS OF THE ARGUMENTS Q1 & Q2 ENABLE INTENSITY CUTS.
; MOVE META
; AND CTRL
; MOVEM FNTFLG
SETZM FNTFLG
MOVE 1,ARG2↔MOVEM 1,Q0
MOVE 1,ARG1
CAIN 1,'FNT'
GO [ SETOM FNTFLG
MOVSI 1,200000
EXCH 1,Q0
MOVEM 1,CHRCOD#
SETZ 1,
GO .+1]
ANDCMI 1,377↔MOVEM 1,Q1
SETZM CUT#
SETQ IMAGE,{MKIMAG,FILM}
SKIPN FNTFLG
CALL(SEGTV)
;FIND AN INTENSITY CONTOUR ENABLE BIT.
L0: MOVE 0,Q0↔MOVE 1,Q1
L1: AOS 2,CUT↔LSHC 0,1↔JUMPL 0,L2
CAMN 0,1↔JUMPE 0,L5↔GO L1
;THRESHOLD THE TVBUF
L2: MOVEM 0,Q0↔MOVEM 1,Q1
SKIPE FNTFLG
GO [;OUTSTR[ASCIZ/CHARACTER = /]
; INCHRW CHRCOD#
CALL(FNTPAK,CHRCOD)
GO [ OUTSTR[ASCIZ/ CHARACTER NOT FOUND.
/]↔ POP2J]
CALL(DPYPAK)
CALL(SEGTV)
MOVE 1,[XWD PAK,PAC]
BLT 1,VSEG
GO L2A]
CALL(THRESH,CUT)
L2A: CALL(PACXOR)
;MAKE LEVEL NODE WITH A RING OF POLYGON NODES.
SETQ(LEVEL,{MKLEVL,IMAGE,CUT})
MOVE 0,CHRCOD ;SET CHARACTER CODE FOR
SKIPE FNTFLG ;CHARACTERS READ FROM FILE
NCNT. 0,1
MOVE 0,CMAX ;REMEMBER WIDTH
SUB 0,CMIN
ASH 0,6
PGON. 0,1
L3: SETQ(POLYGON,{MKPGON,LEVEL})
JUMPN 1,L3↔MOVE 1,LEVEL↔SON 1,1↔JUMPE 1,L0
;LEVEL OPERATIONS.
L4:
SKIPE FNTFLG
GO L4A
CALL(BABYKILLER,LEVEL)
L4A: CALL(STADPY)
GO L0
;IMAGE OPERATIONS.
L5: SETZ↔SKIPE FLGKRK↔CORE2↔JFCL
MOVE 1,IMAGE↔DETSEG↔POP2J
DECLARE{Q0,Q1}
BEND;1/10/73------------------------------------------------------
DECLARE{IMAGE,LEVEL,POLYGON}
FNTFLG: 0
NSUBR(MKIMAG,FILM)------------------------------------------------
; MAKE IMAGE NODE - BGB - 10 JANUARY 1973.
SETQ(IMAGE,{MAKE,[IBIT+IMGREL]})
CALL(RINGIN,IMAGE,FILM)
MOVE 1,IMAGE↔MOVE 2,FILM
SON. 1,2↔DAD. 2,1
HRLI 1,(1)↔MOVEM 1,3(1)↔MOVEM 1,4(1)↔MOVEM 1,5(1) ;FEV-RINGS.
POP1J
SUBREND;1/10/73---------------------------------------------------
NSUBR(MKLEVL,IMAGE,CUT)-------------------------------------------
; MAKE LEVEL NODE - BGB - 10 JANUARY 1973.
SETQ(LEVEL,{MAKE,[LBIT+LVLREL]})
CALL(RINGIN,LEVEL,IMAGE)
MOVE 1,LEVEL↔MOVE 2,IMAGE
SETO↔NCNT. 0,1
SKIPGE↔SON. 1,2↔DAD. 2,1
POP2J
SUBREND;1/10/73---------------------------------------------------